code: public V put(K key, V val) throws Exception {
          return invoke(PUT, key, val, false);
      }
docs: Adds a key value pair to the state machine. The data is not added directly, but sent to the RAFT leader and only
  added to the hashmap after the change has been committed (by majority decision). The actual change will be
  applied with callback {@link #apply(byte[],int,int)}.
  
  @param key The key to be added.
  @param val The value to be added
  @return Null, or the previous value associated with key (if present)