I can state for a fact that you do have AT&T Service in St. Thomas, It's part of the U.S. I called home from St. Thomas and was only charged mins. I never tried in San Juan, but I would assume that you should also get it there.
I also called from Barbados, I got a connection and the call went through, however, I was charged "Roaming" I think I paied about $3.00 for a connection fee plus roaming charges for each min used. I think the 5 min call cost me about $8.00.
Note, there was absolutely no service while at sea.