If Lees posts had a love child (untested - coded blind on iPad - not yet able to sit at a computer) ... should be able to process regular lists as well as dotted pairs:
(defun atl (a x)
(cond
((null x) nil)
((atom x) a)
((vl-list-length x) (mapcar '(lambda (l) (atl a l)) x))
((cons (atl a (car x)) (atl a (cdr x))))
)
)