Moved the update_fields existence check into _do_update

This means both the UPDATE query and the EXISTS query are overridable.