@kaushikranjandecisionmapper,
I have observed your requirements and like to share that when you need to either add or remove a row in table with merged cells, you need to first split them (un-merge them) and then perform the desired operation. After that, you need to merge them again. Please try using following sample code on your end to serve the purpose.
public static void editSlide1()
{
Presentation pr = getTemplate();
ISlide slide = pr.getSlides().get_Item(0);
ITable table = (ITable)slide.getShapes().get_Item(0);
IRow rowToClone = table.getRows().get_Item(1);
//insert clone for Data2
int data2StartingPosition = table.getRows().size();
table.getRows().addClone(rowToClone, true);
table.getRows().get_Item(data2StartingPosition).get_Item(0).getTextFrame().setText("DATA 2");
table.getRows().get_Item(4).get_Item(0).splitByRowSpan(1);
IRow [] ri= table.getRows().insertClone(5, table.getRows().get_Item(4), false);
ri[0].get_Item(1).getTextFrame().setText("Cell 1.5");
ri[0].get_Item(0).getTextFrame().setText("");
table.mergeCells(table.getRows().get_Item(4).get_Item(0), table.getRows().get_Item(5).get_Item(0),true);
table.mergeCells(table.getRows().get_Item(4).get_Item(0), table.getRows().get_Item(6).get_Item(0), true);
table.mergeCells(table.getRows().get_Item(4).get_Item(0), table.getRows().get_Item(7).get_Item(0), true);
int data3StartingPosition = table.getRows().size();
table.getRows().addClone(rowToClone, true);
table.getRows().get_Item(data3StartingPosition).get_Item(0).getTextFrame().setText("DATA 3");
table.getRows().get_Item(8).get_Item(0).splitByRowSpan(1);
table.getRows().get_Item(9).get_Item(0).splitByRowSpan(1);
table.getRows().removeAt(9,false);
table.mergeCells(table.getRows().get_Item(8).get_Item(0), table.getRows().get_Item(9).get_Item(0), true);
pr.save("C:\\Aspose Data\\output.pptx", com.aspose.slides.SaveFormat.Pptx);
}