code: public StrBuilder insert(final int index, String str) {
          validateIndex(index);
          if (str == null) {
              str = nullText;
          }
          if (str != null) {
              final int strLen = str.length();
              if (strLen > 0) {
                  final int newSize = size + strLen;
                  ensureCapacity(newSize);
                  System.arraycopy(buffer, index, buffer, index + strLen, size - index);
                  size = newSize;
                  str.getChars(0, strLen, buffer, index);
              }
          }
          return this;
      }
docs: Inserts the string into this builder.
  Inserting null will use the stored null text value.
  
  @param index  the index to add at, must be valid
  @param str  the string to insert
  @return this, to enable chaining
  @throws IndexOutOfBoundsException if the index is invalid