def write_off_node(self, node, successors, predecessors, attributs):

        trans_id = self._gen_transaction()
        self.transactions[trans_id] = self.connexion.pipeline()

        #removing the successors
        for successor in successors:
            #reverse of write_on_node
            self._remove_predecessor(successor, node, trans_id)
            self._remove_successor(node, successor, trans_id)
            self._handle_no_predecessor(successor, trans_id)

            self.logger.debug("ensure node %(node)s is no longer"\
                " predecessor of %(successor)s" % {
                'successor': successor,
                'node': node
                }
                )

        #removing the predecessors
        for predecessor in predecessors:
            #reverse of write_on_node
            self._remove_predecessor(node, predecessor, trans_id)
            self._remove_successor(predecessor, node, trans_id)
            self._handle_no_predecessor(predecessor, trans_id)

            self.logger.debug("ensure node %(node)s is no longer"\
                " successor of %(predecessor)s" % {
                'predecessor': predecessor,
                'node': node
                }
            )

        #handleling the orphans
        self._handle_no_predecessor(node, trans_id)
        
        #removing the attributs
        for attribut_name in attributs:
            #reverse of write_on_node
            self._remove_attribut(node, attribut_name, trans_id)
            self.logger.debug("remove attibut %(attribut_name)s on"\
                " node %(node)s" % {
                'attribut_name': attribut_name,
                'node': node
                }
            )
        #we execute the pipe
        self.transactions[trans_id].execute()

        #if we use older versions of redis server or redis-python, no lua script
        if self.legacy_mode:
            for successor in successors:
                self._handle_no_predecessor_legacy(successor, trans_id)
            for predecessor in predecessors:
                self._handle_no_predecessor_legacy(predecessor, trans_id)
            self._handle_no_predecessor_legacy(node, trans_id)
            self.transactions[trans_id].execute()
            self._clean_root(trans_id)
            self.transactions[trans_id].execute()
        del self.transactions[trans_id]
check if we do need a multi reindex; this is for compat with
dataset/ETHPy150Open kakwa/pygraph_redis/pygraph_redis/directed_graph.py/Directed_graph.write_off_node--crossover with--dataset/ETHPy150Open pydata/pandas/pandas/core/series.py/Series._needs_reindex_multi