As mentioined,

    list1 = {{1, -1.1}, {2, -1}, {3, -0.9}, {4, 0}, {10, -0.4}};
    list2 = {{2, -0.6}, {3, -0.6}};
    Insert[list1, list2, 3]

leads to an extra list that OP does not want:

    (* {{1, -1.1}, {2, -1}, {{2, -0.6}, {3, -0.6}}, {3, -0.9}, {4, 
        0}, {10, -0.4}} *)

That could be fixed by using

    MapAt[Apply[Sequence], Insert[list1, list2, 3], 3]

    (* {{1, -1.1}, {2, -1}, {2, -0.6}, {3, -0.6}, {3, -0.9}, {4, 
       0}, {10, -0.4}}  *)

but 

    Insert[list1, Sequence@@list2, 3]

leads to an error

[![error][1]][1]

because of the order of the evaluation, that is, applying sequence works when the list is already made but not as an argument to `Insert`. Sometimes problems with the order of evaluation can be solved elegantly by using pure functions. For example:

    Insert[list1, #, 3] & @@ list2

    (* {{1, -1.1}, {2, -1}, {2, -0.6}, {3, -0.9}, {4, 0}, {10, -0.4}} *)

Another option that also works with pure functions is :

    Sequence @@ list2 // Insert[list1, #, 3] & 


  [1]: https://i.sstatic.net/97h50.png