EJB2.0 spec, p:351, sec 17.4.1
Note: The transaction attributes may be specified either by the Bean Provider or by the Application Assembler.
............................................
Providing the transaction attributes for an enterprise bean is an optional requirement for the Application Assembler, because, for a given enterprise bean, the Application Assembler must either specify a value of the transaction attribute for all the methods for which a transaction attribute must be specified, or the Assembler must specify none. If the transaction attributes are not specified for the methods of an enterprise
bean, the Deployer will have to specify them.
IMO, Setting the transaction attributes needs an understanding of the application and the purpose of the various methods of the beans. So it is either the bean provider or the application assembler, preferably the bean provider. In case both the roles miss it, for whatever unknown reason

,
the Deployer has to make sure that they are set to avoid deployment errors.
In practical
EJB projects it is usually the bean provider who sets the transaction attributes, as the application provider role doesn't exist.