only have transactions for indexing, and make it opportunistic. All other ops do not use transactions.