docs: public void delete(final String path, int version)
              throws InterruptedException, KeeperException {
          verbotenThreadCheck();
          final String clientPath = path;
          PathUtils.validatePath(clientPath);
  
          final String serverPath;
  
          // maintain semantics even in chroot case
          // specifically - root cannot be deleted
          // I think this makes sense even in chroot case.
          if (clientPath.equals("/")) {
              // a bit of a hack, but delete(/) will never succeed and ensures
              // that the same semantics are maintained
              serverPath = clientPath;
          } else {
              serverPath = prependChroot(clientPath);
          }
  
          RequestHeader h = new RequestHeader();
          h.setType(ZooDefs.OpCode.delete);
          DeleteRequest request = new DeleteRequest();
          request.setPath(serverPath);
          request.setVersion(version);
          ReplyHeader r = cnxn.submitRequest(h, request, null, null);
          if (r.getErr() != 0) {
              throw KeeperException.create(KeeperException.Code.get(r.getErr()),
                      clientPath);
          }
      }