If you know that he understands what you are saying and just simply ignoring you, then I would say he would understand a punishment for this behaviour. I'm not talking about smacking or anything, but maybe when at home, a time out or taking away a favourite toy, not being allowed to watch a favourite show, just to show there are consequences to his behaviour. It would be different if he wasn't understanding you, then this wouldn't be the right thing. But considering he understands that when you are upset he wants a cuddle, maybe his way of apologising' I think he definitely understands and is choosing to ignore.

May not work for all children but it's worked for mine, so I can only give you advice on what worked for us =)