further optimize transaction storage by comparing dataHash field
if the dataHash field of the transaction that needs storage matches one
from the database (retrieved by profile id and ledger id), then simply
update the generation of the transaction in the database (and its
accounts)
since this is the common case (refreshing transaction list -- most of
the transactions are expected to be unchanged) this saves big time