Do I need GRANT for INSERT to table If has EXECUTION GRANT for procedure?
Permissions on objects used by the stored procedure are not checked with an unbroken ownership chain. Consequently, there is no need to grant permissions on objects used by stored procedures when all objects involved have the same owner, which is typically the schema owner. Users need only stored procedure execute permissions in your case, which includes permissions inherited via role membership.
This assumes no dynamic SQL within stored procedures and objects reside in the same database. See the authorization and permissions documentation for details.