code: public void addProperty(String propertyName, Object propertyValue)
    throws SFException
    {
      statementParametersMap.put(propertyName, propertyValue);
  
      // for query timeout, we implement it on client side for now
      if ("query_timeout".equalsIgnoreCase(propertyName))
      {
        queryTimeout = (Integer) propertyValue;
      }
  
      // check if the number of session properties exceed limit
      if (statementParametersMap.size() > MAX_STATEMENT_PARAMETERS)
      {
        throw new SFException(
            ErrorCode.TOO_MANY_STATEMENT_PARAMETERS, MAX_STATEMENT_PARAMETERS);
      }
    }
docs: Add a statement parameter
  <p>
  Make sure a property is not added more than once and the number of
  properties does not exceed limit.
  
  @param propertyName  property name
  @param propertyValue property value
  @throws SFException if too many parameters for a statement