Using this input document.
<SomeElement>
<ChildElement/>
<ChildElement/>
<ChildElement/>
</SomeElement>
This transformation produces the result you want.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="SomeElement">
<xsl:copy>
<xsl:attribute name="value">
<xsl:value-of select="'something'"/>
</xsl:attribute>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
The first template is the "identity" template. It takes your input document and copies it completely. The second template is the template for the "SomeElement" element. Once I match on that, I copy the element itself, then create an attribute with a text value of 'something'. Then I apply the identity template on all the children/attributes of SomeElement to produce the rest of the tree.
Result
<SomeElement value="something">
<ChildElement/>
<ChildElement/>
<ChildElement/>
</SomeElement>