Yeah, it's probably a bit leaky of an abstraction that `add_update` for overwrites as well.  Likely makes sense to split up `add_update` and `modify_update`.