public V put(K key, V val) throws Exception {
        return invoke(PUT, key, val, false);
    }
public V put ( K key , V val ) throws Exception { return invoke ( PUT , key , val , false ) ; }
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)