I work in a grocery store and have to deal with people like you every day..makes me wanna jump over the counter and smack a bitch. There are times where being an asshole is ok, like in the OP's situation, and other times its just uncalled for and the person is trying to take advantage of the worker. You dont have to be an asshole to work out a situation, its often better to just talk calmly and request to see a manager, they will usually bend over backwards to keep you coming back.
But back to the thread, you were more than justified in acting the way you did.