Yes.
When you call create on EJBLocalHome of a CMP entity bean, the following things happen.
1. Container picks up any bean instance which is in pooled state.
2. Container invokes ejbCreate(<METHOD_PARAMS>
- it should set the persistent properties of the bean instance and provide a valid value of the primary key property.
3. Container actually inserts the record into DB.
4. Container invokes ejbPostCreate(<METHOD_PARAMS>
5. Associates the bean instance to an EJBLocalObject - EJBLocalObject will also get the PrimaryKey of the bean.
Then it returns the reference of the EJBLocalObject to the caller.