Yo!
Yes, it's all understandable, except the big one - why?

The macros to find the source and destination classes of a connector are there. All
%class*% macros are available in the
%connectorSource(Dest)Elem*% macros.
So if you're after the source class name you use
%connectorSourceElemName%, if you want the destination class full name it's
%connectorDestElemQualName%.
Inside your Connector template you're still (also) in a Class context, so
%className% is valid. Which means you can check f'rinstance
%if className == connectorSourceElemName%which will make sure the rest of the template is only executed at the source end of a connector.
However, I'm pretty sure (though I haven't tested this) that you're never in an Attribute context when in a Connector template. But UML-wise I'm not sure that having connectors with the same role names as attributes is a Great Idea
[size=8]TM[/size] anyway.
There is no conceptual difference between an attribute and an association, so having both in the same class is the same as having two identically-named attributes - probably not what you want.
The association is a more explicit notation and also has more power in the CTF so I'd go with that.
/Uffe