I usually tend to do expensive operations during inserts / updates / deletes to cut down on read query time, because that's usually what I optimize for, so that's why I use the counter cache