def _remove_tree(self, tree, parent=None):
        """
        Really remove the tree identified by `tree` instance from all indexes
        from database.

        Args:
            tree (obj): :class:`.Tree` instance.
            parent (obj, default None): Reference to parent.
        """
        # remove sub-trees
        for sub_tree in tree.sub_trees:
            self._remove_tree(sub_tree, parent=tree)

        # remove itself
        for index in tree.indexes:
            if not getattr(tree, index):
                continue

            self._remove_from(
                getattr(self, index + "_db"),
                getattr(tree, index),
                tree,
            )

        if parent:
            self._remove_from(self.parent_db, tree.path, parent)

        self.zeo.pack()
Really remove the tree identified by `tree` instance from all indexes
        from database.

        Args:
            tree (obj): :class:`.Tree` instance.
            parent (obj, default None): Reference to parent.