Arcpy cannot actually make a new map element, it can only manipulate elements already present.
One option, if you need to have a text element occasionally present and occasionally not, is to create the element and 'park' it off the page.
Your code can then puppet the element onstage (so to speak) when it is wanted, to show the text you want.
Puppeting is easiest by shifting the element position in one dimension, x or y; for instance, parking it 10 inches in the x to the right. When it is needed on the page, subtract ten inches from the x location (and set the text string too, if wanted).
This functionality is obviously very limited, but arcpy is deliberately limited. If you need the code to make new things, you need to call ArcObjects.
That is not impossible to do, but there is no toll-free number for such a call.