That is absolutely correct.
However, I am not sure what the point is.
It is not very useful to police that people are using these terms in the technically correct way, language means what people take it to mean, I see little to gain splitting hairs.
Saying Python is an interpreted language, people just mean " in the vast majority of cases, the Python implementation people use is an interpreter" .. and most languages have a default implementation, as you yourself point out in the article.
When people say that C++ is compiled what they obviously mean is that "the most common implementations of C++ are compilers and therefore it is overwhelmingly likely that if you work in it, you will work with a compiler".
A discussion of languages should also mention translators and assemblers, as some language implementations are neither compiled not interpreted.. And in that case, can one say that an Assembly language is an assembled language, if no interpreters exist for it, without fearing to be reminded that "languages are neither compiled, nor interpreted, nor translated, nor assembled"... Mhh... going down the road of hairsplitting sometimes appears to clarify, but in fact it is rife with more and more levels of complication ;)