Parser: Update the task status as part of the service transaction
In the case of the MetadataParser service, there's a small window during which changes from the service have been saved in DB, but the progress hasn't been. This means that if the process crashes/stops without
IParserCb::done getting called, we will try to re-run the same task, leading to a most likely invalid state/duplicated entries.
All data must be inserted as a transaction, but our book keeping must be inserted as part of the same transaction.