code: public void remove(E edge) {
          if (! edge.added){
              return;
          }
          boolean contained;         
          contained = edges.remove(edge);
          assert(contained);
          contained = edge.getChild().inEdges.remove(edge);
          assert(contained);
          contained = edge.getParent().outEdges.remove(edge);
          assert(contained);
          
          edge.added = false;
      }
docs: Removes an edge if it was in the graph. Does not remove its parent/child nodes.