The Spring Boot Transaction That Lied to Me

@Transactional looks safe. It isn’t. Here’s the exact failure I debugged at 2AM and what the docs don’t say