code: public void add(MtasSolrStatus status) throws IOException {
      Objects.requireNonNull(status);
      if (enabled) {
        data.add(status);
        if (!index.containsKey(status.key())) {
          index.put(status.key(), status);
          garbageCollect();
        } else {
          garbageCollect();
          // retry
          MtasSolrStatus oldStatus = index.get(status.key());
          if (oldStatus == null) {
            index.put(status.key(), status);
          } else if (oldStatus.finished()) {
            remove(oldStatus);
            index.put(status.key(), status);
          } else {
            throw new IOException("key " + status.key() + " already exists");
          }
        }
      }
    }
docs: Adds the.
  
  @param status
  the status
  @throws IOException
  Signals that an I/O exception has occurred.