EJBExcpetion is a runtime exception so you do not have to declare it in the throws clause. (It is also a wrapper exception....)
The tutorial is wrong. Doing such will cause the verifier in deploytool to declare this as an error.
All system exceptions are runtime exceptions in
EJB. If you the container encounters a system exception, it will automagically role back the current transaction.
CreateException and RemoveException are application exceptions (non system, i.e., non runtimes). If the container encounters them, it will not automagiacally role back the current transaction.... it is up to the client if the transaction context gets propagated that far to handle the exception and roll back the transaction if needed.