As pointed out in https://github.com/spring-projects/spring-framework/pull/27308/commits/09c64ae309d0421dc0680651140abfa441d87a32#r881209396, currently TransactionalOperator.executeAndAwait
has a rigid null-safety handling and hardcode non-null for the input parameter type and nullable for the return value.
Kotlin allows to deal with both non-null and nullable depending on the nullability of the lambda, we should take advantage of that.