ABI basically depends on the size and shape of the object, including the vtable. Adding a virtual function will definitely change the vtable, and how it changes depends on the compiler.
Something else to consider in this case is that you're not just proposing an ABI breaking change, but an API breaking one that is very difficult to detect at compile time. If these were not virtual functions and ABI compatibility wasn't an issue, after your change, something like:
void f(Interface * i) {
i->Foo(1)
}
will quietly end up calling your new function, but only if that code is recompiled, which can make debugging very difficult.