Optimisation: only update managed object when we intend to save it