docs: public int setBytes(long pos, byte[] bytes, int offset,
                          int len) throws SQLException {
  
          if (!this.createdByConnection) {
  
              /** @todo - better error message */
              throw Util.notSupported();
          }
  
          if (bytes == null) {
              throw Util.nullArgument("bytes");
          }
  
          if (offset < 0 || offset > bytes.length) {
              throw Util.outOfRangeArgument("offset: " + offset);
          }
  
          if (len > bytes.length - offset) {
              throw Util.outOfRangeArgument("len: " + len);
          }
  
          if (pos < MIN_POS || pos > 1L + (Integer.MAX_VALUE - len)) {
              throw Util.outOfRangeArgument("pos: " + pos);
          }
  
          pos--;
  
          byte[] ldata = this.data;
  
          checkValid(ldata);
  
          final int dlen = ldata.length;
  
          if ((pos + len) > dlen) {
              byte[] temp = new byte[(int) pos + len];
  
              System.arraycopy(ldata, 0, temp, 0, dlen);
  
              ldata = temp;
              temp  = null;
          }
  
          System.arraycopy(bytes, offset, ldata, (int) pos, len);
  
          // paranoia, in case somone free'd us during the array copies.
          checkValid(this.data);
  
          this.data = ldata;
  
          return len;
      }