def METHOD_NAME(self, e):
    """
    add edge e and its vertices into the Graph possibly merging the associated graph_core components
    """
    x = e.v[0]
    y = e.v[1]
    x = self.add_vertex(x)
    y = self.add_vertex(y)
    cx = x.component
    cy = y.component
    e = cy.METHOD_NAME(e)
    # connect (union) the graphs:
    if cx != cy:
        cx.union_update(cy)
        self.components.remove(cy)
    return e