code: def ManagedCreate(super_cls):
      
  
      @wraps(super_cls.create)
      async def _create(self, *args, **kwargs):
          cls = type(self)
          manager = getattr(cls, '_manager', None)
          manager_field = getattr(cls, '_manager_field', None)
          if manager is not None and manager_field is not None:
              args = (manager,) + args
              new_obj = await super_cls.create(*args, **kwargs)
              self._items = self._items + [new_obj]
              manager._data[manager_field.name] = (
                  manager._data[manager_field.name] +
                  [new_obj._data])
              manager._orig_data[manager_field.name] = (
                  manager._orig_data[manager_field.name] +
                  [new_obj._data])
              return new_obj
          else:
              raise AttributeError(
                  'create is not supported; %s is not a managed set' % (
                      super_cls.__name__))
      return _create
docs: Dynamically creates a `create` method for a `ObjectSet.Managed` class
      that calls the `super_cls.create`.
  
      The first positional argument that is passed to the `super_cls.create` is
      the `_manager` that was set using `ObjectSet.Managed`. The created object
      is added to the `ObjectSet.Managed` also placed in the correct
      `_data[field]` and `_orig_data[field]` for the `_manager` object.