Two errors were made by Sean Spicer: who was attacked, and who did the attacking.
The Anti-Media article in question has a link to an Intercept article that demonstrates that Sean Spicer misspoke and quickly corrected himself when the error in who was attacked was pointed out.
He did not "fabricate" or "misrepresent" an attack on the American Navy.
Major Garrett of CBS News quietly corrected him, saying “a Saudi vessel,” and Spicer then responded almost inaudibly: “Sorry, thank you, yes a Saudi vessel. Yes, that’s right.” He did not in any way address his false claim that it was an Iranian attack, however.
That second error - who did the attacking - was later confirmed as false by the Pentagon.
Pentagon spokesman Christopher Sherwood confirmed to The Intercept that the attack was in fact conducted against a Saudi warship, and that the Pentagon suspects Houthi rebels. “It was a Saudi ship – it was actually a frigate” said Sherwood. “It was [conducted by] suspected Houthi rebels off the coast of Yemen.”
So, Sean Spicer did not immediately correct that mistake.
The source of the confusion is suspected to be a faulty Fox News report:
Fox News initially misreported that a U.S. ship was somehow the target — which is perhaps where some of the confusion in the White House originated
One might denounce Spicer for not being careful with the facts and for not double-checking news reports. However, the claim that he deliberately fabricated or misrepesented an attack against the USA is a beat up, which is inconsistent with the very media reports being cited by the original article in the question.