Most of the time when people talk about a DOM, they are talking about traversal and updating of a tree that represents an HTML document. Specifically when people are talking about a "virtual DOM", they are talking about building a parallel representation of the browser's DOM with nicer traversal and update methods. You then need an efficient update mechanism between the "virtual DOM" and the "real DOM".
Code that gives you a handy way to generate HTML programmatically is very useful and I've written similar things myself many times. I don't think you'll get much traction calling it a "virtual DOM", though, even though it implements a Document Object Model.