Previous behavior would fail if inserting an operation that already
existed. Now SymbolTable::insert can also be used as a way to make a
symbol's name unique even after insertion.
Further TODOs have been left over naming and consistent behavior
considerations.
Can you update the doc here and in the header? It should probably say that it only inserts into the symbol table operation if it isn't already a child.