Finalize Managed Object Instance creation.

        Implements the successful third step of the multi-step workflow similar to
        the SNMP SET command processing (:RFC:`1905#section-4.2.5`).

        The goal of the third (successful) phase is to seal the new Managed Object
        Instance. Once the system transitions into the *cleanup* state, no roll back
        to the previous Managed Object Instance state is possible.

        The role of this object in the MIB tree is non-terminal. It does not
        access the actual Managed Object Instance, but just traverses one level
        down the MIB tree and hands off the query to the underlying objects.

        Parameters
        ----------
        varBind: :py:class:`~pysnmp.smi.rfc1902.ObjectType` object representing
            new Managed Object Instance value to create

        Other Parameters
        ----------------
        \*\*context:

            Query parameters:

            * `cbFun` (callable) - user-supplied callable that is invoked to
              pass the new value of the Managed Object Instance or an error.

            * `instances` (dict): user-supplied dict for temporarily holding
              Managed Objects Instances being created.

        Notes
        -----
        The callback functions (e.g. `cbFun`) have the same signature as this
        method where `varBind` contains the new Managed Object Instance value.

        In case of an error, the `error` key in the `context` dict will contain
        an exception object.

def createCleanup(self, varBind, **context):
        """Finalize Managed Object Instance creation.

        Implements the successful third step of the multi-step workflow similar to
        the SNMP SET command processing (:RFC:`1905#section-4.2.5`).

        The goal of the third (successful) phase is to seal the new Managed Object
        Instance. Once the system transitions into the *cleanup* state, no roll back
        to the previous Managed Object Instance state is possible.

        The role of this object in the MIB tree is non-terminal. It does not
        access the actual Managed Object Instance, but just traverses one level
        down the MIB tree and hands off the query to the underlying objects.

        Parameters
        ----------
        varBind: :py:class:`~pysnmp.smi.rfc1902.ObjectType` object representing
            new Managed Object Instance value to create

        Other Parameters
        ----------------
        \*\*context:

            Query parameters:

            * `cbFun` (callable) - user-supplied callable that is invoked to
              pass the new value of the Managed Object Instance or an error.

            * `instances` (dict): user-supplied dict for temporarily holding
              Managed Objects Instances being created.

        Notes
        -----
        The callback functions (e.g. `cbFun`) have the same signature as this
        method where `varBind` contains the new Managed Object Instance value.

        In case of an error, the `error` key in the `context` dict will contain
        an exception object.
        """
        name, val = varBind

        (debug.logger & debug.FLAG_INS and
         debug.logger('%s: createCleanup(%s, %r)' % (self, name, val)))

        instances = context['instances'].setdefault(self.name, {self.ST_CREATE: {}, self.ST_DESTROY: {}})
        idx = context['idx']

        self.branchVersionId += 1

        instances[self.ST_CREATE].pop(-idx - 1, None)

        self._vars[name].writeCleanup(varBind, **context)