Adding/removing items to CollectionProperty in PropertyGroup and UNDO
Your operator should define bl_options = {"UNDO"}:

class MyOperator(bpy.types.Operator):
    bl_options = {"UNDO"}
    ...


See https://docs.blender.org/api/2.79/bpy.types.Operator.html?highlight=bl_options#bpy.types.Operator.bl_options