These articles might give you the answer to what you could have done better.

http://www.marriagebuilders.com/graphic/mbi8115_prob.html
http://www.marriagebuilders.com/graphic/mbi3402_disrespect.html

Although you didn't yell, it still was an angry outburst.
"It bothers me that you are late" is the 'correct' way to compain. "It's so rude and selfish" are disrespecful judgements. In the article you can read that disrespectful judgements are verbal abuse.

You should not suck it up, but adress the issue in a respectful manner. If someone tells you you're doing somethng wrong and you are rude and selfish, does that motivate you to do it better next time?

Anger makes people do very stupid things. A friend of mine, angry with her spouse threw things around and he said "You only throw my stuff". She replied "Oh really?" Next thing she knew, grandma's antique teapot she had in het hands was shattered against the wall. She still regrets it.
Angry outbursts should be eliminated, so anger management is recommended.

Read more articles, they all make sense.