Use a transaction to store all the information related to one block in db: block, extrinsics, signed_extrinsics, events, account updates, etc
Modify block harvester to just fill the gaps in db and should not check that all blocks have the correct number of block, extrinsics and events (this is guarantee by the usage of a transaction)
node-pg doc: https://node-postgres.com/features/transactions
Async/await example: