Yes, commit() would actually commit the database transaction, which I don't want at this point. I need flush so the database knows that, at least inside the current transaction, the tag is deleted and can be recreated again without running afoul of unique constraints.

However, if I use commit() at that point, there would be a potential race condition, where the tag is actually deleted outside this transaction and outside of this request, which shouldn't happen as part of a PUT request.