code: @Override
      public Iterable<T> delete(final Iterable<T> entities) {
          return inTransaction(new Callable<Iterable<T>>() {
              @Override
              public Iterable<T> call() throws Exception {
                  for (T object : entities) {
                      T attached = getAttached(object);
                      if (attached != null) {
                          entityManager.remove(attached);
                      }
                  }
                  return entities;
              }
          });
      }
docs: Deletes the given entity instances. The instances are removed from the persistent layer.
  
  @param entities the entities to remove from the persistent layer
  @return the set of entity instances