Here is a simpler solution:
Create a symbolic function fn that prints as '\exp', replace e^x in your
expression with fn, translate the new expression to latex:
# the top level function method injects the name of the function into
# the name space. I don't want to overwrite the exp method in the top
# level. Hence the import
sage: from sage.symbolic.function_factory import function
sage: fn = function('exp', latex_name='\exp')
sage: fn
exp
sage: type(exp)
<class 'sage.functions.log.Function_exp'>
sage: latex(fn(x))
\exp\left(x\right)
sage: t = exp(x^2) + (x+1)*exp(a^2+b)
sage: latex(t)
{\left(x + 1\right)} e^{\left(a^{2} + b\right)} + e^{\left(x^{2}\right)}
sage: latex(t.substitute_function(exp, myfn))
{\left(x + 1\right)} \exp\left(a^{2} + b\right) + \exp\left(x^{2}\right)
Cheers,
Burcin