That isn't overloading. They both have the signature saveList(List). Remember that generic information is removed at runtime, so the compiler cannot distinguish those two methods.
I am not sure what the correct answer is because you haven't provided enough information about the two methods. I am a bit suspicious, however, that you are acting outwith the List's original owning object, which means you are breaching the single responsibility principle. I have found a few places where you can find out about that: 12 and enclosed links. If there is an object with those Lists in, maybe that object should be responsible for maintaining those Lists. Unless you have a generic list saving utility, consider moving those methods elsewhere.
And I think you might have gotten it backwards there, Campbell. Generic types are used by the compiler to provide tighter type checking. Type erasure will replace the generic types with ordinary types (classes, interfaces) and methods, typecasts to preserve type safety, or bridge methods to preserve polymorphism. It's the runtime that has no idea of generics, so the error is the compiler basically saying: "Oops, when I apply type erasure these two methods turn out to have the same exact signature. That's not going to work for the JVM."