Serialize an already serialized object.

        If the underlying store supports linking, this is the place where to make links.

        The default implementation delegates to :meth:`pokeStorable` or :meth:`pokeNative`.

        Arguments:

            objname (any): record reference.

            obj (any): object to be serialized.

            existing (any): absolute reference of the record which the object
                was already serialized into.

            visited (dict): already serialized objects.

            _stack (CallStack): stack of parent object names.

def pokeVisited(self, objname, obj, record, existing, visited=None, _stack=None, **kwargs):
        """
        Serialize an already serialized object.

        If the underlying store supports linking, this is the place where to make links.

        The default implementation delegates to :meth:`pokeStorable` or :meth:`pokeNative`.

        Arguments:

            objname (any): record reference.

            obj (any): object to be serialized.

            existing (any): absolute reference of the record which the object
                was already serialized into.

            visited (dict): already serialized objects.

            _stack (CallStack): stack of parent object names.

        """
        if self.hasPythonType(obj):
            storable = self.byPythonType(obj).asVersion()
            self.pokeStorable(storable, objname, obj, record, visited=visited, \
                _stack=_stack, **kwargs)
        else:
            try:
                self.pokeNative(objname, obj, record)
            except (SystemExit, KeyboardInterrupt):
                raise
            except:
                self.dump_stack(_stack)
                raise