If things fail now it'll scotch the Hub transaction as well.  Unfortunately the
adds and modifies and removes are still separate.  I may try to handle that
the next time around