Put transaction around the graph operations.

Exceptions are captured in a Try result, still need to manage failed
graph population.