code: def Update(method):
      # pylint: disable=C0103
      
      if not isinstance(method, types.FunctionType):
          raise TypeError("@Update can only be applied on functions")
  
      # Tests the number of parameters
      validate_method_arity(
          method, "service", "service_reference", "old_properties"
      )
  
      _append_object_entry(
          method,
          constants.IPOPO_METHOD_CALLBACKS,
          constants.IPOPO_CALLBACK_UPDATE,
      )
      return method
docs: The ``@Update`` callback decorator is called when the properties of an
      injected service have been modified.
  
      The decorated method must accept the injected service object and its
      :class:`~pelix.framework.ServiceReference` and the previous properties
      as arguments::
  
         @Update
         def update_method(self, service, service_reference, old_properties):
             '''
             service: The injected service instance.
             service_reference: The injected service ServiceReference
             old_properties: The previous service properties
             '''
             # ...
  
      Exceptions raised by an update callback are ignored.
  
      :param method: The decorated method
      :raise TypeError: The decorated element is not a valid function