Duvida sobre transação

eu peguei um codigo aqui para gerenciar a transação mais estou meio confuso, alguem pode me dar um Help.

OBS: Eu fiquei na duvida, sobre uma variavel boolean, e dentro do if tem 2 begin() e no meio tem um rollback e passa depois true, me enrolei rsrs

@Priority(Interceptor.Priority.LIBRARY_BEFORE)
@Interceptor
@Transactional 
public class TransactionInterceptor implements Serializable {

	private static final long serialVersionUID = 1L;

	@Inject
	private EntityManager manager;
	
	@AroundInvoke
	public Object invoke(InvocationContext context) throws Exception {
		EntityTransaction transaction = manager.getTransaction();
		boolean owner = false;

		try {
			if (!transaction.isActive()) { 
				transaction.begin();
				transaction.rollback();
				

				transaction.begin();
				
				owner = true;
			}

			return context.proceed();
		} catch (Exception e) {
			if (transaction != null && owner) {
				transaction.rollback();
			}

			throw e;
		} finally {
			if (transaction != null && transaction.isActive() && owner) {
				transaction.commit();
			}
		}
	}

}