Вы можете сделать это за один проход, используя sideEffect()
:
gremlin> g.V().has('person','name','marko').as('m').
......1> outE('knows').
......2> filter(inV().has('person','name','vadas')).
......3> sideEffect(drop()).
......4> V().has('person','name','peter').
......5> addE('knows').from('m')
==>e[13][1-knows->6]
В строке 1 мы в основном идентифицируем ребро, от которого мы хотим избавиться (т.е. "знает" ребро от "marko" до "vadas"), и мы drop()
это в строке 3. В строке 4 мы ищем вершину к которому мы хотим подключить «marko», а затем добавить ребро в строке 5.