Using `update` is a bit ambiguous; when we do it we aren't expressing whether we expect the update operation to succeed or fail.
We were following these rules in most places; we just didn't define them anywhere.