def METHOD_NAME(self, key, start, finish, *args, **kwargs):
    if finish != "forgotten":
        self.state_updates.append((self.index[key], finish))
    else:
        self.visible_updates.append((self.index[key], "False"))
        task = self.scheduler.tasks[key]
        for dep in task.dependents:
            edge = (key, dep.key)
            self.visible_edge_updates.append((self.index_edge.pop(edge), "False"))
        for dep in task.dependencies:
            self.visible_edge_updates.append(
                (self.index_edge.pop((dep.key, key)), "False")
            )
        try:
            del self.collision[(self.x[key], self.y[key])]
        except KeyError:
            pass
        for collection in [self.x, self.y, self.index]:
            del collection[key]