code: @Override
      public T delete(final T t) {
          return inTransaction(
                  new Callable<T>() {
                      @Override
                      public T call() throws Exception {
                          T attached = getAttached(t);
                          if (attached != null) {
                              entityManager.remove(attached);
                          }
                          return t;
                      }
                  }
          );
      }
docs: Deletes the given entity instance. The instance is removed from the persistent layer.
  
  @param t the instance
  @return the entity instance, may be the same as the parameter t but can also be different