To pretend that the United States is safe is burying your head in the sand.
We are responsible for our own safety. Basic awareness is required anywhere on the planet. If you are incapable of saying NO then remember the adage about Safety in Numbers.
"Physically attacking" is embellishment at the least and Yellow Journalism comes to mind. If they were attacked, they would have been much more than shaken up.
There is no port in the US or foreign country that does not have incidents.
I still say Jamaica, including Ocho Rios and Montego Bay gets a bum rap. Kingston is another story, but no cruise ships stop there.