code: @Override
      public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
          if (_target == null) {
              return null;
          } else if (!_enabled || Object.class.equals(method.getDeclaringClass())) {
              return method.invoke(_target, args);
          } else {
              Object ret;
              TransactionHelper utx = new TransactionHelper(_enabled);
              try {
                  utx.begin();
                  ret = method.invoke(_target, args);
                  utx.commit();
              } catch (Throwable t) {
                  utx.rollback();
                  throw t;
              }
              return ret;
          }
      }
docs: {@inheritDoc}