code: public static Row insertRow(final Sheet sheet, final int rowIndex) {
  
          ArgUtils.notNull(sheet, "cell");
          ArgUtils.notMin(rowIndex, 0, "rowIndex");
  
          // 最終行を取得する
          int lastRow = sheet.getLastRowNum();
          if(lastRow < rowIndex) {
              // データが定義されている範囲害の場合は、行を新たに作成して返す。
              return sheet.createRow(rowIndex);
          }
  
          sheet.shiftRows(rowIndex, lastRow+1, 1);
          return sheet.createRow(rowIndex);
      }
docs: 指定した行の下に行を1行追加する
  @param sheet
  @param rowIndex 追加する行数
  @return 追加した行を返す。