We do "time in" where DS has to sit quietly and think about why we're not happy with what he has done (he was clearly happy with his behaviour and didn't see it as wrong!), then consider if he needs to apologise.

Of course, if he can explain my reaction was over the top, I apologise. And have done - once! It makes apologies from DS a lot more frequent now, as he knows I apologise too.