I see the rationale behind this implementation. However I believe this is not a good design. 
1. One method does one thing (Clean Code). This method does multiple things at the same time. I understand we are mixing business logic and Dao operations. But mixing things together make it hard to verify the logic and debug if things go wrong, especially with concurrency.
2. Data consistency should not be a responsibility of the application. It should be guaranteed by datastore. If the datastore cannot guarantee a transaction would succeed, we will get in big trouble.
3. I'm not comfortable with incrementing-count. I think we should query to get the correct number of solves from the table (querying by Id-only is fast.)

I'm not sure if there is such a patten used in any app built on top the GAE. But the app should not be worry about a group of updates succeed or fail together. If the count fails to be updated, that's not our fault.