In ab5361d69ae4b55a7635676eef7d80dd96d8460c, we rescue from the PG error
but the transaction is already aborted causing any DB query after to
fail. As such, we avoid triggering the error in the first place by
checking that we would not be insertin a negative number into the
counter cache.
Follow-up to ab5361d69ae4b55a7635676eef7d80dd96d8460c