You can execute an UPDATE statement as per [r2/r2/models/report.py](https://github.com/tricycle/lesswrong/blob/1233c31f00dcd1592b65361621c323b4ec64ca31/r2/r2/models/report.py#L480).

Something like `UPDATE %(table)s SET descendant_karma = descendant_karma + %(amount)s WHERE id IN %(self_and_ancestor_ids)s`

The benefits:

- one atomic UPDATE sql statement instead of having to wrap multiple ones in a transaction
- the logic happens inside one method call instead of multiple invocations of incr_descendant_karma on different objects (more performant, easier to debug)