code: @Override
    int insertBlob(byte[] srcBuffer, int srcRowOffset,
                   byte[] dstBuffer, int dstRowOffset, int dstBlobTail)
    {
      int srcColumnOffset = srcRowOffset + offset();
      int dstColumnOffset = dstRowOffset + offset();
      
      int blobLen = BitsUtil.readInt16(srcBuffer, srcColumnOffset + 2);
  
      if (blobLen == 0) {
        return dstBlobTail;
      }
      
      blobLen &= ~LARGE_BLOB_MASK;
  
      if (dstRowOffset < dstBlobTail + blobLen) {
        return -1;
      }
  
      int blobOffset = BitsUtil.readInt16(srcBuffer, srcColumnOffset);
  
      try {
        System.arraycopy(srcBuffer, blobOffset, dstBuffer, dstBlobTail,
                         blobLen);
      } catch (ArrayIndexOutOfBoundsException e) {
        throw new ArrayIndexOutOfBoundsException("srcOff: " + blobOffset
                                                 + " dstOff: " + dstBlobTail
                                                 + " len: " + blobLen
                                                 + " " + this);
      }
  
      BitsUtil.writeInt16(dstBuffer, dstColumnOffset, dstBlobTail);
      
      /*
      System.out.println("SET: " + Hex.toHex(dstBuffer, dstRowOffset, 5) 
                         + " " + Hex.toHex(dstBuffer, dstBlobTail, 4));
                         */
      
      return dstBlobTail + blobLen;
    }
docs: Copies the inline blob from a source block to a destination block.
  If the inline blob is too large for the target block, return -1,
  otherwise return the new blobTail.