docs: public V put(K key, V value, long timeout, TimeUnit unit)
      {
          if (lastPurge < System.currentTimeMillis())
          {
              size();
              lastPurge = System.currentTimeMillis() + purgeLimit;
          }
          V old = null;
          if (ttlSet.contains(key))
          {
              old = map.get(key);
          }
          map.put(key, value);
          if (unit == null)
          {
              ttlSet.add(key);
          }
          else
          {
              ttlSet.add(key, timeout, unit);
          }
          return old;
      }