Add more flexibility to overriding parent class behaviour

You can override addOrUpdate now to do some aditional checks
e.g. verify if object should be replaced (if it's older than existing
one) or maybe apply some merge technique when syncing stuff.