docs: def update(self, *data, **kwargs) -> 'Entity':
          """Update a Record in the repository.
  
          Also performs unique validations before creating the entity.
  
          Supports both dictionary and keyword argument updates to the entity::
  
              dog.update({'age': 10})
  
              dog.update(age=10)
  
          :param data: Dictionary of values to be updated for the entity
          :param kwargs: keyword arguments with key-value pairs to be updated
          """
          logger.debug(f'Updating existing `{self.__class__.__name__}` object with id {self.id}')
  
          # Fetch Model class and connected repository from Repository Factory
          model_cls = repo_factory.get_model(self.__class__)
          repository = repo_factory.get_repository(self.__class__)
  
          try:
              # Update entity's data attributes
              self._update_data(*data, **kwargs)
  
              # Do unique checks, update the record and return the Entity
              self._validate_unique(create=False)
  
              # Perform Pre-Save Actions
              self.pre_save()
  
              repository.update(model_cls.from_entity(self))
  
              # Set Entity status to saved
              self.state_.mark_saved()
  
              # Perform Post-Save Actions
              self.post_save()
  
              return self
          except Exception:
              # FIXME Log Exception
              raise