Why we should not mark a purchase as granted if Datastore request saving the purchase log fails?

I am reading the example here:

There is something, which I do not understand. In the example, in case we have a problem while saving the purchase log to the Datastore, we trigger an error and we do not send status “PurchaseGranted”:

However if we have reached this part of the function, this means that the Purchase has been granted to the player. Shouldn’t we return status “PurchaseGranted” no matter that the saving of the log has failed?
I do not see a benefit to invite the Marketplace service to call our function again, which will lead to double granting of the product to the player?

Thanks in advance