In the EJB 2.x specification for CMT, there's no mention on what should be the default value for <trans-attribute> when not specified, so the default value was left to the application server providers. In JBoss, the default value is REQUIRED except for Message Driven Beans where the default is NOT_SUPPORTED. There's a JIRA for EJB 2.x to make this configurable, check: JBAS-4194
In the EJB 3.x specification however, this has changed. Footnote 65 within section 13.3.4 states: REQUIRED is the default transaction attribute value for container managed transaction demarcation. The explicit specification of the transaction attribute is therefore not required in this example.