I think it's a matter of how you use JPA.
If you persist or merge data in method A, the changes should appear in the context of method B as long as you are using JPA properly. That is, you retrieve data in method B using the same persistence manager, you retrieve it
after it was persisted (don't use out of date objects), and you don't forcibly fetch directly from the database. That is the essence of a complex transaction - that everything succeeds or fails as a
unit and if any part of the transaction fails, you'd roll the whole thing back.
You
can forcibly flush the operations out to the physical database, if necessary. Or break out an independent sub-transaction that effectively does just that, but about the only case where I do that is in cases where I need a generated key and cannot take advantage of more civilized options.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.