docs: public void removeNode(final @Nonnull Node node) throws IOException {
          if (node == nodes.get(node.getNodeName())) {
              Queue.withLock(new Runnable() {
                  @Override
                  public void run() {
                      Computer c = node.toComputer();
                      if (c != null) {
                          c.recordTermination();
                          c.disconnect(OfflineCause.create(hudson.model.Messages._Hudson_NodeBeingRemoved()));
                      }
                      if (node == nodes.remove(node.getNodeName())) {
                          jenkins.updateComputerList();
                          jenkins.trimLabels();
                      }
                  }
              });
              // no need for a full save() so we just do the minimum
              Util.deleteRecursive(new File(getNodesDir(), node.getNodeName()));
  
              NodeListener.fireOnDeleted(node);
          }
      }