Нет.
Во-первых, они могут даже не нуждаться в блокировке.
Во-вторых, если пользователи вашей функции не являются многопоточными, то вы платите за блокировку бесполезно.
Вы должны четко задокументировать, является ли функция поточно-ориентированной или нет, и позволить пользователям принимать решение. Для примера Java см. Структуру коллекций.