code: @Override
      public <T> WriteResult delete(final T entity, final DeleteOptions options) {
          final T wrapped = ProxyHelper.unwrap(entity);
          if (wrapped instanceof Class<?>) {
              throw new MappingException("Did you mean to delete all documents? -- delete(ds.createQuery(???.class))");
          }
          try {
              return delete(wrapped.getClass(), mapper.getId(wrapped), options);
          } catch (Exception e) {
              throw new RuntimeException(e);
          }
      }
docs: Deletes the given entity (by @Id), with the WriteConcern
  
  @param entity  the entity to delete
  @param options the options to use when deleting
  @return results of the delete