def METHOD_NAME(self, origin_vertex_index: int, dest_vertex_index: int, label: str = "default") -> None:
    if origin_vertex_index == dest_vertex_index:
        # this should not happen
        return
    edge = Edge(origin_vertex_index, dest_vertex_index, label)
    self.edges.append(edge)
    self.out_edges[origin_vertex_index].append(edge)
    self.in_edges[dest_vertex_index].append(edge)