Prepares the tree for deletion according to the deletion semantics
            specified for the :class:`CTENode` Model, and then delegates to the
            :class:`CTENode` superclass ``delete`` method.

            Default deletion `method` and `position` callable can be overridden
            by being supplied as arguments to this method.

            :param method: optionally a particular deletion method, overriding
                the default method specified for this model.

            :param position: optional callable to invoke prior to each move
                operation, should the delete method require any moves.

            :param save: optional flag indicating whether this model's
                :meth:`save` method should be invoked after each move operation,
                should the delete method require any moves.

def delete(self, method=None, position=None, save=True):
        """ Prepares the tree for deletion according to the deletion semantics
            specified for the :class:`CTENode` Model, and then delegates to the
            :class:`CTENode` superclass ``delete`` method.

            Default deletion `method` and `position` callable can be overridden
            by being supplied as arguments to this method.

            :param method: optionally a particular deletion method, overriding
                the default method specified for this model.

            :param position: optional callable to invoke prior to each move
                operation, should the delete method require any moves.

            :param save: optional flag indicating whether this model's
                :meth:`save` method should be invoked after each move operation,
                should the delete method require any moves.
        """
        self.__class__.objects.prepare_delete(
            self, method=method, position=position, save=save
        )
        return super(CTENode, self).delete()