Better error message for update()

Improves the error message for update() when the existing value is the same as the new one, as suggested in #1254
I'd prefer not to include `$value` in the message, as it could be an extremely large value that breaks output.