code: public void setTime(final int parameterIndex, final Time time, final Calendar cal)
        throws SQLException {
      if (time == null) {
        setNull(parameterIndex, ColumnType.TIME);
        return;
      }
      setParameter(parameterIndex,
          new TimeParameter(time, cal != null ? cal.getTimeZone() : TimeZone.getDefault(),
              useFractionalSeconds));
    }
docs: Sets the designated parameter to the given <code>java.sql.Time</code> value, using the given
  <code>Calendar</code> object.  The driver uses the <code>Calendar</code> object to construct
  an SQL
  <code>TIME</code> value, which the driver then sends to the database.  With a
  <code>Calendar</code> object, the
  driver can calculate the time taking into account a custom timezone.  If no
  <code>Calendar</code> object is specified, the driver uses the default timezone, which is that
  of the virtual machine running the application.
  
  @param parameterIndex the first parameter is 1, the second is 2, ...
  @param time           the parameter value
  @param cal            the <code>Calendar</code> object the driver will use to construct the
  time
  @throws SQLException if parameterIndex does not correspond to a parameter marker in the SQL
  statement; if a database access error occurs or this method is called on a
  closed
  <code>PreparedStatement</code>