OptimisticLockException will only be used if there is an @Version field in the entity, and if a transaction tries to save an entity that has been modified by another transaction since the state of the entity has been loaded.
Each transaction has its own instance of each entity it loads. Entities are not thread-safe, and must not be shared by several threads.
Transient fields are indeed ignored completely by JPA. But I don't see how synchronization could change anything, since each thread has its own entity instance. Moreover, in most enterprise applications, multiple JVMs use the same database, so synchronization doesn't help there. Frankly, using transient fields in entities usually show a design problem, and relying on the state of a transient field in an entity to hold state shared by multiple threads is plain wrong. If the state is shared by multiple threads or even processes, it should probably be saved in the database.