class ViewModel::ActiveRecord::UpdateContext

def run!(deserialize_context:)

Applies updates and subsequently releases. Returns the updated viewmodels.
def run!(deserialize_context:)
  updated_viewmodels = @root_update_operations.map do |root_update|
    root_update.run!(deserialize_context: deserialize_context)
  end
  @release_pool.release_all!
  if updated_viewmodels.present?
    # Deferred database constraints may have been violated by changes during
    # deserialization. VM::AR promises that any errors during deserialization
    # will be raised as a ViewModel::DeserializationError, so check constraints
    # and raise before exit.
    check_deferred_constraints!(updated_viewmodels.first.model.class)
  end
  updated_viewmodels
end