docs: @Override
      public Collection<Bean> delete(String schemaName, Collection<String> instanceIds)
              throws AbortRuntimeException {
          init();
          Map<BeanId, Bean> deleted = list(schemaName, instanceIds);
          Set<HBeanRow> rows = new HashSet<>();
          for (String id : instanceIds) {
              rows.add(new HBeanRow(BeanId.create(id, schemaName), uids));
          }
          try {
              rows = table.getEager(rows).getRows();
              ArrayList<BeanId> predecessors = new ArrayList<>();
              for (HBeanRow row : rows) {
                  for (BeanId id : row.getPredecessorsBeanIds()) {
                      predecessors.add(id);
                  }
              }
              if (predecessors.size() > 0) {
                  throw Events.CFG302_CANNOT_DELETE_BEAN(predecessors);
              }
          } catch (HBeanNotFoundException e) {
              throw Events.CFG304_BEAN_DOESNT_EXIST(e.getNotFound().iterator().next());
          }
          table.delete(rows);
          return deleted.values();
      }