JSDoc
Inserts a new element of the specified type (tag name) before the first element matching the specified
before selector for each selected element. For example, a before selector :first-child will prepend nodes before the first child.
If before is not specified, it defaults to null. (To append elements in an order consistent with bound data, use selection.append.)
This method returns a new selection containing the appended elements.
Each new element inherits the data of the current elements, if any.
The generic refers to the type of the child element to be appended.